#ifndef TYPEDEFS_H_
#define TYPEDEFS_H_

#include <string>
#include <vector>
#include <math.h>
#include <queue>
#include <map>
#include <list>
#include <sstream>
#include <fstream>
#include <iostream>

#include "../typedefs.h"
#include "../quaternion.h"

using namespace std;

typedef Point3                Point3D;
typedef Vector3               Vector3D;
typedef Segment3              Segment3D;
typedef Vector2               Vector2D;

typedef Quaternion<Number>    Quat;

typedef vector<string>                 Sons;
typedef map<string, Sons>              Hierarchy;

typedef vector<Number>                 Transformations;
typedef map<string, Transformations>   PoseTransformations;

typedef pair<Point3D, string>          Joint;
typedef map<string, Joint>             Pose;

/// An enum specifying format files supporteds 
typedef enum {
   asfFile,
   amcFile,
   bvhFile,
   noneFile
} FileType;

#endif /*TYPEDEFS_H_*/
